﻿using System;
using System.Collections.Generic;
using System.Linq;
using Assist;
using Autodesk.Revit.DB;
using Autodesk.Revit.DB.Architecture;
using YArchitech.Controls;
using YArchitech.Revit;
using YJKAreaStatistic.DataDefine;
using YJKAreaStatistic.Utils;
using YJKGeometryFuncs;

namespace YJKAreaStatistic.Manage
{
	public class TableDataManager
	{
		public TableDataManager(Autodesk.Revit.DB.Document doc)
		{
			this.m_doc = doc;
		}

		public void InitData(List<RecordCellData> lstRecordDatas, ref int nMostColNum, ref int nMostUnitColNum)
		{
			this.InitTotalTargetData(lstRecordDatas, ref nMostUnitColNum);
			this.InitHouseTargetData(ref nMostColNum);
			this.InitCoverTargetData();
			this.InitOnlyOneCellData();
		}

		public void AddCellData(BaseCellData cellData)
		{
			if (cellData is TotalTargetData)
			{
				this.m_lstTotalTargetData.Add(cellData);
				return;
			}
			if (cellData is HouseTargetData)
			{
				this.m_lstHouseTargetData.Add(cellData);
				return;
			}
			if (cellData is CoverTargetData)
			{
				this.m_lstCoverTargetData.Add(cellData);
			}
		}

		public void DeleteCellData(BaseCellData cellData)
		{
			BaseCellData cellData2 = this.GetCellData(cellData.RowNum, cellData.ColumnNum);
			if (cellData2 != null)
			{
				this.m_lstTotalTargetData.Remove(cellData2);
				this.m_lstHouseTargetData.Remove(cellData2);
				this.m_lstCoverTargetData.Remove(cellData2);
			}
		}

		public BaseCellData GetCellData(int nRow, int nCol)
		{
			foreach (BaseCellData baseCellData in this.GetAllCellData())
			{
				if (baseCellData.ColumnNum == nCol && baseCellData.RowNum == nRow)
				{
					return baseCellData;
				}
			}
			return null;
		}

		public List<BaseCellData> GetUpdateCellData(BaseCellData cellData)
		{
			List<BaseCellData> list = new List<BaseCellData>();
			try
			{
				string rowValue = cellData.RowValue;
				Dictionary<string, List<string>> dictionary = new Dictionary<string, List<string>>();
				XmlManager.GetAreaMappingTable(ref dictionary);
				List<string> list2 = new List<string>();
				foreach (KeyValuePair<string, List<string>> keyValuePair in dictionary)
				{
					if (rowValue.Contains(keyValuePair.Key))
					{
						list2.AddRange(keyValuePair.Value);
						break;
					}
				}
				foreach (string strName in list2)
				{
					int rowNumberByName = CellRowValueNumManager.GetRowNumberByName(strName);
					if (rowNumberByName > 0)
					{
						List<BaseCellData> list3 = new List<BaseCellData>();
						foreach (BaseCellData baseCellData in this.GetAllCellData())
						{
							if (baseCellData.RowNum == rowNumberByName)
							{
								list3.Add(baseCellData);
							}
						}
						foreach (BaseCellData baseCellData2 in list3)
						{
							baseCellData2.CellValue = AreaCalcManager.CalcChgCellData(baseCellData2.RowNum, baseCellData2.ColumnNum, this.m_nStartCol, this.GetAllCellData(), this.m_doc).ToString("f2");
							list.Add(baseCellData2);
						}
					}
				}
			}
			catch (Exception)
			{
			}
			return list;
		}

		private void InitTotalTargetData(List<RecordCellData> lstRecordDatas, ref int nMostUnitColNum)
		{
			List<ViewPlan> list = new List<ViewPlan>();
			AreaPlanManager.GetAllArchAreaPlane(this.m_doc, ref list);
			int num = this.m_nStartCol;
			int nStartCol = this.m_nStartCol;
			foreach (ViewPlan viewPlan in list)
			{
				List<ElementId> lstRoom = new List<ElementId>();
				string name = viewPlan.GenLevel.Name;
				if (string.IsNullOrEmpty(this.m_strFirstLevelName))
				{
					this.m_strFirstLevelName = name;
				}
				this.GetCurAreaPlaneRoom(viewPlan, ref lstRoom);
				TotalTargetData totalTargetData = new TotalTargetData(CellRowValueNumManager.RowKindLevelNumber, num, name, CellRowValueNumManager.StrKindLevelNumber, name);
				totalTargetData.CurUseAreaPlan = viewPlan;
				totalTargetData.LstRoom = lstRoom;
				this.m_lstTotalTargetData.Add(totalTargetData);
				int num2 = 1;
				TotalTargetData totalTargetData2 = new TotalTargetData(CellRowValueNumManager.RowKindLevelCount, num, num2.ToString("f2"), CellRowValueNumManager.StrKindLevelCount, name);
				string text = this.IsExistRecordData(lstRecordDatas, totalTargetData2);
				if (text != "")
				{
					totalTargetData2.CellValue = text;
					totalTargetData2.BIsModify = true;
				}
				totalTargetData2.CurUseAreaPlan = viewPlan;
				totalTargetData2.LstRoom = lstRoom;
				this.m_lstTotalTargetData.Add(totalTargetData2);
				double sumOneViewPlanArea = AreaCalcManager.GetSumOneViewPlanArea(viewPlan);
				string strCellValue = sumOneViewPlanArea.ToString("f2");
				TotalTargetData totalTargetData3 = new TotalTargetData(CellRowValueNumManager.RowKindLevelArchArea, num, strCellValue, CellRowValueNumManager.StrKindLevelArchArea, name);
				string text2 = this.IsExistRecordData(lstRecordDatas, totalTargetData3);
				if (text2 != "")
				{
					totalTargetData3.CellValue = text2;
					totalTargetData3.BIsModify = true;
				}
				totalTargetData3.CurUseAreaPlan = viewPlan;
				totalTargetData3.LstRoom = lstRoom;
				this.m_lstTotalTargetData.Add(totalTargetData3);
				string strCellValue2 = (sumOneViewPlanArea * (double)num2).ToString("f2");
				TotalTargetData totalTargetData4 = new TotalTargetData(CellRowValueNumManager.RowKindLevelTotalArchArea, num, strCellValue2, CellRowValueNumManager.StrKindLevelTotalArchArea, name);
				totalTargetData4.CurUseAreaPlan = viewPlan;
				totalTargetData4.LstRoom = lstRoom;
				this.m_lstTotalTargetData.Add(totalTargetData4);
				num++;
			}
			nMostUnitColNum = num;
			double num3 = AreaCalcManager.CalcOvergroundArchArea(this.m_doc);
			string strCellValue3 = num3.ToString("f2");
			TotalTargetData item = new TotalTargetData(CellRowValueNumManager.RowOvergroundArchArea, nStartCol, strCellValue3, CellRowValueNumManager.StrOvergroundArchArea, this.m_strFirstLevelName);
			this.m_lstTotalTargetData.Add(item);
			double num4 = AreaCalcManager.CalcUndergroundArchArea(this.m_doc);
			string strCellValue4 = num4.ToString("f2");
			TotalTargetData item2 = new TotalTargetData(CellRowValueNumManager.RowUndergroundArchArea, nStartCol, strCellValue4, CellRowValueNumManager.StrUndergroundArchArea, this.m_strFirstLevelName);
			this.m_lstTotalTargetData.Add(item2);
			string strCellValue5 = (num3 + num4).ToString("f2");
			TotalTargetData item3 = new TotalTargetData(CellRowValueNumManager.RowTotalArchArea, nStartCol, strCellValue5, CellRowValueNumManager.StrTotalArchArea, this.m_strFirstLevelName);
			this.m_lstTotalTargetData.Add(item3);
		}

		private string IsExistRecordData(List<RecordCellData> lstRecordDatas, BaseCellData curCellData)
		{
			string result = "";
			try
			{
				foreach (RecordCellData recordCellData in lstRecordDatas)
				{
					if (recordCellData.StrCurRowTitle.Equals(curCellData.RowValue) && recordCellData.StrCurColTitle.Equals(curCellData.ColumnValue))
					{
						result = recordCellData.StrCurRecordValue;
						break;
					}
				}
			}
			catch (Exception)
			{
			}
			return result;
		}

		private void InitHouseTargetData(ref int nMostColNum)
		{
			List<HouseData> list = new List<HouseData>();
			this.GetHouseData(list);
			int num = this.m_nStartCol;
			foreach (HouseData houseData in list)
			{
				List<ElementId> list2 = new List<ElementId>();
				foreach (Area area in houseData.lstArea)
				{
					List<ElementId> collection = new List<ElementId>();
					if (InsertDataManager.ReadExtensibleStorageFromArea(area, ref collection))
					{
						list2.AddRange(collection);
					}
				}
				Area area2 = houseData.lstArea.First<Area>();
				HouseTargetData houseTargetData = new HouseTargetData(CellRowValueNumManager.RowHouseNumber, num, houseData.HouseName, CellRowValueNumManager.StrHouseNumber, houseData.LevelName, houseData.HouseName, area2);
				houseTargetData.LstRoom = list2;
				houseTargetData.CurUseAreaPlan = houseData.CurUseAreaPlan;
				this.m_lstHouseTargetData.Add(houseTargetData);
				HouseTargetData houseTargetData2 = new HouseTargetData(CellRowValueNumManager.RowHouseLocation, num, houseData.LevelName, CellRowValueNumManager.StrHouseLocation, houseData.LevelName, houseData.HouseName, area2);
				houseTargetData2.LstRoom = list2;
				houseTargetData2.CurUseAreaPlan = houseData.CurUseAreaPlan;
				this.m_lstHouseTargetData.Add(houseTargetData2);
				string strCellValue = 1.ToString("f2");
				HouseTargetData houseTargetData3 = new HouseTargetData(CellRowValueNumManager.RowHouseCount, num, strCellValue, CellRowValueNumManager.StrHouseCount, houseData.LevelName, houseData.HouseName, area2);
				houseTargetData3.LstRoom = list2;
				houseTargetData3.CurUseAreaPlan = houseData.CurUseAreaPlan;
				this.m_lstHouseTargetData.Add(houseTargetData3);
				string strCellValue2 = houseData.HouseArea.ToString("f2");
				HouseTargetData houseTargetData4 = new HouseTargetData(CellRowValueNumManager.RowInnerArea, num, strCellValue2, CellRowValueNumManager.StrInnerArea, houseData.LevelName, houseData.HouseName, area2);
				houseTargetData4.LstRoom = list2;
				houseTargetData4.CurUseAreaPlan = houseData.CurUseAreaPlan;
				this.m_lstHouseTargetData.Add(houseTargetData4);
				List<ElementId> lstRoom = new List<ElementId>();
				double tmpArea = 0.0;
				lstRoom = this.GetHalfAreaValue(list2, ref tmpArea);
				string strCellValue3 = AreaCalcManager.ChangeAreaByUnit(tmpArea).ToString("f2");
				HouseTargetData houseTargetData5 = new HouseTargetData(CellRowValueNumManager.RowHalfAreaRangeOne, num, strCellValue3, CellRowValueNumManager.StrHalfAreaRangeOne, houseData.LevelName, houseData.HouseName, area2);
				houseTargetData5.LstRoom = lstRoom;
				houseTargetData5.CurUseAreaPlan = houseData.CurUseAreaPlan;
				this.m_lstHouseTargetData.Add(houseTargetData5);
				string strCellValue4 = 0.0.ToString("f2");
				HouseTargetData item = new HouseTargetData(CellRowValueNumManager.RowHalfAreaRangeTwo, num, strCellValue4, CellRowValueNumManager.StrHalfAreaRangeTwo, houseData.LevelName, houseData.HouseName, area2);
				this.m_lstHouseTargetData.Add(item);
				string strCellValue5 = 0.0.ToString("f2");
				HouseTargetData item2 = new HouseTargetData(CellRowValueNumManager.RowHalfAreaRangeThree, num, strCellValue5, CellRowValueNumManager.StrHalfAreaRangeThree, houseData.LevelName, houseData.HouseName, area2);
				this.m_lstHouseTargetData.Add(item2);
				string strCellValue6 = AreaCalcManager.CalcItemCount(num, this.m_lstHouseTargetData).ToString("f2");
				HouseTargetData item3 = new HouseTargetData(CellRowValueNumManager.RowItemCount, num, strCellValue6, CellRowValueNumManager.StrItemCount, houseData.LevelName, houseData.HouseName, area2);
				this.m_lstHouseTargetData.Add(item3);
				string strCellValue7 = AreaCalcManager.CalcInnerUseArea(area2).ToString("f2");
				HouseTargetData houseTargetData6 = new HouseTargetData(CellRowValueNumManager.RowInnerUseArea, num, strCellValue7, CellRowValueNumManager.StrInnerUseArea, houseData.LevelName, houseData.HouseName, area2);
				houseTargetData6.CurUseAreaPlan = houseData.CurUseAreaPlan;
				this.m_lstHouseTargetData.Add(houseTargetData6);
				num++;
			}
			nMostColNum = num;
			string strCellValue8 = AreaCalcManager.CalcTotalInnerArea(CellRowValueNumManager.RowInnerArea, this.m_lstHouseTargetData).ToString("f2");
			HouseTargetData item4 = new HouseTargetData(CellRowValueNumManager.RowTotalInnerArchArea, 4, strCellValue8, CellRowValueNumManager.StrTotalInnerArchArea, this.m_strFirstLevelName, "", null);
			this.m_lstHouseTargetData.Add(item4);
		}

		private void GetHouseData(List<HouseData> lstHouseData)
		{
			List<ViewPlan> list = new List<ViewPlan>();
			AreaPlanManager.GetAllInnerAreaPlane(this.m_doc, ref list);
			foreach (ViewPlan viewPlan in list)
			{
				string name = viewPlan.GenLevel.Name;
				List<Area> list2 = new List<Area>();
				if (AreaCalcManager.GetViewPlanAllValidArea(viewPlan, ref list2))
				{
					foreach (Area area in list2)
					{
						string text = "";
						AreaParamManager.GetAreaHouseName(area, ref text);
						HouseData houseData = null;
						if (this.HasHouse(lstHouseData, text, AreaParamManager.GetAreaAreaValue(area), out houseData))
						{
							houseData.lstArea.Add(area);
							houseData.CurUseAreaPlan = viewPlan;
						}
						else
						{
							HouseData houseData2 = new HouseData(name, text, AreaParamManager.GetAreaAreaValue(area));
							houseData2.lstArea.Add(area);
							lstHouseData.Add(houseData2);
							houseData2.CurUseAreaPlan = viewPlan;
						}
					}
				}
			}
		}

		private bool HasHouse(List<HouseData> lstHouseData, string strHouseName, double dHouseArea, out HouseData houseData)
		{
			foreach (HouseData houseData2 in lstHouseData)
			{
				if (houseData2.HouseName == strHouseName && Geometry.IsEqual(houseData2.HouseArea, dHouseArea))
				{
					houseData = houseData2;
					return true;
				}
			}
			houseData = null;
			return false;
		}

		private void InitCoverTargetData()
		{
			List<HouseData> list = new List<HouseData>();
			this.GetHouseData(list);
			int num = this.m_nStartCol;
			string strCellValue = 0.0.ToString("f2");
			CoverTargetData item = new CoverTargetData(CellRowValueNumManager.RowUnitPublicShareArea, num, strCellValue, CellRowValueNumManager.StrUnitPublicShareArea, this.m_strFirstLevelName);
			this.m_lstCoverTargetData.Add(item);
			foreach (HouseData houseData in list)
			{
				string strCellValue2 = 0.0.ToString("f2");
				CoverTargetData coverTargetData = new CoverTargetData(CellRowValueNumManager.RowGiftArea, num, strCellValue2, CellRowValueNumManager.StrGiftArea, houseData.LevelName);
				coverTargetData.CurUseAreaPlan = houseData.CurUseAreaPlan;
				this.m_lstCoverTargetData.Add(coverTargetData);
				string strCellValue3 = AreaCalcManager.CalcPublicShareCoefficient(CellRowValueNumManager.RowInnerArea, CellRowValueNumManager.RowTotalInnerArchArea, num, this.m_nStartCol, this.m_lstHouseTargetData).ToString("f2");
				CoverTargetData item2 = new CoverTargetData(CellRowValueNumManager.RowPublicShareCoefficient, num, strCellValue3, CellRowValueNumManager.StrPublicShareCoefficient, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item2);
				string strCellValue4 = AreaCalcManager.CalcPublicShareArea(CellRowValueNumManager.RowPublicShareCoefficient, CellRowValueNumManager.RowUnitPublicShareArea, num, this.m_nStartCol, this.m_lstCoverTargetData).ToString("f2");
				CoverTargetData item3 = new CoverTargetData(CellRowValueNumManager.RowPublicShareArea, num, strCellValue4, CellRowValueNumManager.StrPublicShareArea, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item3);
				string strCellValue5 = AreaCalcManager.CalcLevelPublicShareCoefficient(CellRowValueNumManager.RowInnerArea, num, this.m_lstHouseTargetData).ToString("f2");
				CoverTargetData item4 = new CoverTargetData(CellRowValueNumManager.RowLevelPublicShareCoefficient, num, strCellValue5, CellRowValueNumManager.StrLevelPublicShareCoefficient, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item4);
				string strCellValue6 = AreaCalcManager.CalcLevelPublicShareArea(CellRowValueNumManager.RowLevelPublicShareCoefficient, CellRowValueNumManager.RowKindLevelArchArea, num, this.GetAllCellData()).ToString("f2");
				CoverTargetData item5 = new CoverTargetData(CellRowValueNumManager.RowLevelPublicShareArea, num, strCellValue6, CellRowValueNumManager.StrLevelPublicShareArea, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item5);
				string strCellValue7 = AreaCalcManager.CalcCoverArea(num, this.GetAllCellData()).ToString("f2");
				CoverTargetData item6 = new CoverTargetData(CellRowValueNumManager.RowCoverArea, num, strCellValue7, CellRowValueNumManager.StrCoverArea, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item6);
				string strCellValue8 = AreaCalcManager.CalcSaleArea(num, this.GetAllCellData()).ToString("f2");
				CoverTargetData item7 = new CoverTargetData(CellRowValueNumManager.RowSaleArea, num, strCellValue8, CellRowValueNumManager.StrSaleArea, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item7);
				string strCellValue9 = AreaCalcManager.CalcGiftRatio(num, this.GetAllCellData()).ToString("f2");
				CoverTargetData item8 = new CoverTargetData(CellRowValueNumManager.RowGiftRatio, num, strCellValue9, CellRowValueNumManager.StrGiftRatio, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item8);
				string strCellValue10 = AreaCalcManager.CalcOwnerInRoomRatio(num, this.GetAllCellData()).ToString("f2");
				CoverTargetData item9 = new CoverTargetData(CellRowValueNumManager.RowOwnerInRoomRatio, num, strCellValue10, CellRowValueNumManager.StrOwnerInRoomRatio, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item9);
				string strCellValue11 = AreaCalcManager.CalcRealInRoomRatio(num, this.GetAllCellData()).ToString("f2");
				CoverTargetData item10 = new CoverTargetData(CellRowValueNumManager.RowRealInRoomRatio, num, strCellValue11, CellRowValueNumManager.StrRealInRoomRatio, houseData.LevelName);
				this.m_lstCoverTargetData.Add(item10);
				num++;
			}
		}

		private void GetCurAreaPlaneRoom(ViewPlan curAreaPlan, ref List<ElementId> lstResRooms)
		{
			List<ElementId> collection = new List<ElementId>();
			foreach (Element element in new FilteredElementCollector(this.m_doc, curAreaPlan.Id).OfClass(typeof(SpatialElement)))
			{
				Area area = element as Area;
				if (area != null && InsertDataManager.ReadExtensibleStorageFromArea(area, ref collection))
				{
					lstResRooms.AddRange(collection);
				}
			}
		}

		private List<ElementId> GetHalfAreaValue(List<ElementId> lstInputRooms, ref double dHalfAreaVal)
		{
			List<ElementId> list = new List<ElementId>();
			try
			{
				foreach (ElementId elementId in lstInputRooms)
				{
					Room room = this.m_doc.GetElement(elementId) as Room;
					if (room != null)
					{
						Parameter parameter = room.GetParameter("面积系数");
						double val = 0.0;
						if (parameter != null)
						{
							if ((int)parameter.StorageType == 2)
							{
								val = AssistFunc.feetToMM(room.GetParameter("面积系数").AsDouble());
							}
							else if ((int)parameter.StorageType == 3)
							{
								val = Convert.ToDouble(room.GetParameter("面积系数").AsString());
							}
							if (Geometry.IsEqual(val, 0.5, 0.1))
							{
								list.Add(elementId);
								dHalfAreaVal += room.Area;
							}
						}
					}
				}
			}
			catch (Exception)
			{
				YJKMessageBox.Show("过滤半面积区域房间失败!");
			}
			return list;
		}

		private List<BaseCellData> GetAllCellData()
		{
			List<BaseCellData> list = new List<BaseCellData>();
			list.AddRange(this.m_lstTotalTargetData);
			list.AddRange(this.m_lstHouseTargetData);
			list.AddRange(this.m_lstCoverTargetData);
			return list;
		}

		private void InitOnlyOneCellData()
		{
			string strCellValue = AreaCalcManager.CalcTotalInnerArea(CellRowValueNumManager.RowInnerArea, this.m_lstHouseTargetData).ToString("f2");
			TotalTargetData item = new TotalTargetData(CellRowValueNumManager.RowTotalInnerArea, this.m_nStartCol, strCellValue, CellRowValueNumManager.StrTotalInnerArea, this.m_strFirstLevelName);
			this.m_lstTotalTargetData.Add(item);
			string strCellValue2 = AreaCalcManager.CalcTotalShareArea(this.m_nStartCol, this.GetAllCellData()).ToString("f2");
			TotalTargetData item2 = new TotalTargetData(CellRowValueNumManager.RowTotalShareArea, this.m_nStartCol, strCellValue2, CellRowValueNumManager.StrTotalShareArea, this.m_strFirstLevelName);
			this.m_lstTotalTargetData.Add(item2);
			string strCellValue3 = AreaCalcManager.CalcTotalCellArea(CellRowValueNumManager.RowInnerUseArea, this.GetAllCellData()).ToString("f2");
			HouseTargetData item3 = new HouseTargetData(CellRowValueNumManager.RowTotalUseArea, this.m_nStartCol, strCellValue3, CellRowValueNumManager.StrTotalUseArea, this.m_strFirstLevelName, "", null);
			this.m_lstHouseTargetData.Add(item3);
			string strCellValue4 = AreaCalcManager.CalcOwnerOutRoomRatio(this.m_nStartCol, this.GetAllCellData()).ToString("f2");
			CoverTargetData item4 = new CoverTargetData(CellRowValueNumManager.RowOwnerOutRoomRatio, this.m_nStartCol, strCellValue4, CellRowValueNumManager.StrOwnerOutRoomRatio, this.m_strFirstLevelName);
			this.m_lstCoverTargetData.Add(item4);
			string strCellValue5 = AreaCalcManager.CalcRealOutRoomRatio(this.m_nStartCol, this.GetAllCellData()).ToString("f2");
			CoverTargetData item5 = new CoverTargetData(CellRowValueNumManager.RowRealOutRoomRatio, this.m_nStartCol, strCellValue5, CellRowValueNumManager.StrRealOutRoomRatio, this.m_strFirstLevelName);
			this.m_lstCoverTargetData.Add(item5);
		}

		public int StartColumnNumber
		{
			get
			{
				return this.m_nStartCol;
			}
		}

		public List<BaseCellData> LstTotalTargetData
		{
			get
			{
				return this.m_lstTotalTargetData;
			}
		}

		public List<BaseCellData> LstHouseTargetData
		{
			get
			{
				return this.m_lstHouseTargetData;
			}
		}

		public List<BaseCellData> LstCoverTargetData
		{
			get
			{
				return this.m_lstCoverTargetData;
			}
		}

		public List<BaseCellData> LstAllTargetData
		{
			get
			{
				List<BaseCellData> list = new List<BaseCellData>();
				list.AddRange(this.m_lstTotalTargetData);
				list.AddRange(this.m_lstHouseTargetData);
				list.AddRange(this.m_lstCoverTargetData);
				return list;
			}
		}

		private List<BaseCellData> m_lstTotalTargetData = new List<BaseCellData>();

		private List<BaseCellData> m_lstHouseTargetData = new List<BaseCellData>();

		private List<BaseCellData> m_lstCoverTargetData = new List<BaseCellData>();

		private Document m_doc;

		private string m_strFirstLevelName = string.Empty;

		private int m_nStartCol = 4;
	}
}
